Some storage systems operate in a “cache mode,” in which data sent to the storage system for writing in the storage system's non-volatile memory is first stored in a volatile write cache. While the storage system may send the host a “command completion” signal after receiving the write command, “command completion” does not necessary mean that the data associated with the write command has been written in non-volatile memory, as the data may still be stored in the volatile memory. In some situations (e.g., to maintain file system integrity), the host may want to make sure that data from all previous write commands sent to the storage system 100 (and indicated to have been “completed” by the storage system) have, indeed, been committed to non-volatile memory. To do this, the host can send a “flush command” to the storage system, which triggers the storage system to write the data that is stored in the volatile write cache into the non-volatile memory. After the storage system writes the data in the non-volatile memory and confirms the written data is reliable, the storage system acknowledges that the flush operation was successfully completed.